<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计算属性实现</title>
    <!-- 引入vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>

<body>
    <div id="root">
        姓: <input type="text" v-model="firstname"> <br>
        名: <input type="text" v-model="lastname"> <br>
        测试:<input type="text" v-model="x"> <br>
        姓名：<span>{{fullname}}</span> <br>
    </div>
    <script>
        Vue.config.productionTip = false // 以阻止 vue 在启动时生成生产提示。

        const vm = new Vue({
            el: "#root",
            data: {
                firstname: 'yy',
                lastname: 'kk',
                x: 123
            },
            computed: {
                fullname: {
                    // get有什么用？当有人读取fullname时，get就会被调用，且返回值作为fullname的值
                    // get什么时候调用？1.初次读取fullName时。2.所依赖的数据发生变化时。
                    get() {
                        console.log("get被调用了");
                        console.log(this); // 此处的this是vm
                        return this.firstname + "-" + this.lastname
                    },

                    // set什么时候被调用？当fullname被修改时
                    set(value) {
                        console.log('set', value);
                        const arr = value.split('-')
                        this.firstname = arr[0]
                        this.lastname = arr[1]
                    }
                }
            }

        })
    </script>
</body>

</html>